export default {
  type: 'object',
  column: 2,
  gutter: [16, 16],
  labelWidth: 100,
  size: 'medium', // 'small' | 'medium' | 'large'
  layout: 'vertical', // horizontal | vertical | inline
  properties: {
    textarea: {
      type: 'string',
      title: '详情',
      widget: 'Textarea',
      rules: [
        {
          required: true,
          message: '请输入描述',
          trigger: ['input', 'blur', 'change'],
        },
      ],
      props: {
        clearable: true,
        type: 'textarea',
      },
    },
    group: {
      type: 'array',
      title: '详情',
      widget: 'InputGroup',
      rules: [
        {
          required: true,
          message: '请输入描述',
          trigger: ['input', 'blur', 'change'],
        },
      ],
      props: {
        clearable: true,
        options: [
          {
            label: '几时',
            value: '',
          },
          {
            label: '几分',
            value: '',
          },
          {
            label: '几秒',
            value: '',
          },
        ],
      },
    },
    name: {
      type: 'string',
      title: '姓名',
      widget: 'Input',
      rules: [
        {
          required: true,
          message: '请输入姓名',
          trigger: ['input', 'blur', 'change'],
        },
      ],
      props: {},
    },
    // age: {
    //   type: 'number',
    //   title: '年龄',
    //   widget: 'InputNumber',
    //   rules: [
    //     {
    //       type: 'number',
    //       required: true,
    //       message: '请输入年龄',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // gender: {
    //   type: 'string',
    //   title: '性别',
    //   widget: 'Select',
    //   props: {
    //     multiple: true,
    //     options: [
    //       { label: '男', value: '男' },
    //       { label: '女', value: '女' },
    //     ],
    //   },
    //   rules: [
    //     {
    //       type: 'array',
    //       required: true,
    //       message: '请选择年纪',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // attr: {
    //   type: 'string',
    //   title: '单选属性',
    //   widget: 'Cascader',
    //   props: {
    //     multiple: false, // 多选
    //     filterable: true, // 可搜索
    //     disabled: false, // 禁用
    //     clearable: true,
    //     showPath: false,
    //     cascade: false,
    //     checkStrategy: 'all',
    //     options: [...getOptions()],
    //   },
    //   rules: [
    //     {
    //       required: true,
    //       message: '请选择一个年纪',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // mult: {
    //   type: 'string',
    //   title: '多选属性',
    //   widget: 'Cascader',
    //   props: {
    //     multiple: true,
    //     clearable: true,
    //     showPath: false,
    //     cascade: false,
    //     checkStrategy: 'all',
    //     options: [...getOptions()],
    //   },
    //   rules: [
    //     {
    //       type: 'array',
    //       required: true,
    //       message: '请选择多个年纪',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // color: {
    //   type: 'string',
    //   title: '颜色',
    //   widget: 'ColorPicker',
    //   props: {
    //     disabled: false,
    //     modes: ['hex'],
    //     showAlpha: true, // 是否可调节 alpha 通道
    //     showPreview: true, // 是否展示颜色预览块
    //     swatches: ['#FFFFFF', '#18A058', '#2080F0', '#F0A020'],
    //   },
    //   rules: [
    //     {
    //       required: true,
    //       message: '请选择颜色',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // checkbox: {
    //   type: 'array',
    //   title: '多选',
    //   widget: 'Checkbox',
    //   props: {
    //     disabled: false,
    //     options: [
    //       {
    //         label: '选项1',
    //         value: '1',
    //       },
    //     ],
    //   },
    //   rules: [
    //     {
    //       type: 'array',
    //       required: true,
    //       message: '请选择多选',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // radio: {
    //   type: 'string',
    //   title: '单选',
    //   widget: 'Radio',
    //   props: {
    //     options: [
    //       {
    //         label: '选项1',
    //         value: '1',
    //       },
    //       {
    //         label: '选项2',
    //         value: '2',
    //       },
    //     ],
    //   },
    //   rules: [
    //     {
    //       required: true,
    //       message: '请选择一个',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // date: {
    //   type: 'string',
    //   widget: 'DatePicker',
    //   title: '日期',
    //   props: {
    //     clearable: true,
    //     disabled: false,
    //     valueFormat: 'yyyy-MM-dd HH:mm:ss',
    //     type: 'datetime', // date: 日期，daterange：日期范围，datetime: 日期时间，datetimerange：日期时间范围 yearrange：年份范围, monthrange：月份范围 month:月份
    //   },
    //   rules: [
    //     {
    //       required: true,
    //       message: '请选择日期',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // star: {
    //   type: 'number',
    //   widget: 'Rate',
    //   title: '评价',
    //   props: {
    //     allowHalf: true,
    //     clearable: true,
    //     color: '#ffd04b',
    //     count: 5,
    //   },
    //   rules: [
    //     {
    //       type: 'number',
    //       required: true,
    //       message: '请点击进行评价',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // switch: {
    //   type: 'boolean',
    //   widget: 'Switch',
    //   title: '开关',
    //   props: {
    //     round: true,
    //     disabled: false,
    //     checked: '开',
    //     unchecked: '关',
    //   },
    //   rules: [
    //     {
    //       type: 'boolean',
    //       required: true,
    //       message: '请选择状态',
    //       trigger: ['input', 'blur', 'change'],
    //     },
    //   ],
    // },
    // upload: {
    //   type: 'string',
    //   widget: 'Upload',
    //   title: '上传文件',
    //   props: {
    //     action: 'https://jsonplaceholder.typicode.com/posts/',
    //     accept: 'image/*',
    //     multiple: true,
    //     disabled: false,
    //     max: 3,
    //     listType: 'image-card',
    //   },
    // },
  },
}

function getOptions(depth = 3, iterator = 1, prefix = ''): any[] {
  const length = 12
  const options = []
  for (let i = 1; i <= length; ++i) {
    if (iterator === 1) {
      options.push({
        value: `韩-${i}`,
        label: `日-${i}`,
        children: getOptions(depth, iterator + 1, `${String(i)}`),
      })
    } else if (iterator === depth) {
      options.push({
        value: `韩-${prefix}-${i}`,
        label: `日-${prefix}-${i}`,
      })
    } else {
      options.push({
        value: `韩-${prefix}-${i}`,
        label: `日-${prefix}-${i}`,
        children: getOptions(depth, iterator + 1, `${prefix}-${i}`),
      })
    }
  }
  return options
}
